#include <iostream>
 
 class Adaptee{
	public:
	void SpecificRequest(){
		std::cout << "Need me" << std::endl;
	}
 };
 class Target{
	public:
		virtual void Request() = 0;
 };
 
 class Adapter:public Target{
	public:
		Adapter(const Adaptee& ad):adaptee(ad){}
		virtual void Request();
	private:
		Adaptee adaptee;
 };
 
 void Adapter::Request(){
	adaptee.SpecificRequest();
 }
 

 
 int main(){
	Adaptee adaptee;
	Target *target = new Adapter(adaptee);
	target->Request();
	return 0;
 }
 
 